home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.convert;
-
- import com.extensibility.app.UI;
- import com.extensibility.xml.dt.DataTypeFactory;
- import java.sql.Connection;
- import java.sql.DatabaseMetaData;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
- import sun.jdbc.odbc.JdbcOdbcDriver;
-
- public class ImportODBCMeta implements MetaSpectIntf {
- String sourceString = UI.getString("dialog.import.odbc.name");
- String promptString = UI.getString("dialog.import.odbc.source");
- String listPrompt = UI.getString("dialog.import.odbc.list");
- String dbConnectString = "jdbc:odbc:";
- String dbType = "Unknown";
- String dbVersion = "Unknown";
- String driverName = "Unknown";
- String driverVersion = "Unknown";
- Connection conn;
-
- public String getPrompt(int var1) {
- switch (var1) {
- case 1:
- return this.sourceString;
- case 2:
- return this.promptString;
- case 3:
- return this.listPrompt;
- case 4:
- return null;
- default:
- return "";
- }
- }
-
- public void open(String var1, String var2, String var3) throws SQLException, ClassNotFoundException {
- this.dbConnectString = String.valueOf(this.dbConnectString).concat(String.valueOf(var1));
- String var4 = System.getProperty("java.vendor").toLowerCase();
- DriverManager.registerDriver(new JdbcOdbcDriver());
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- this.conn = DriverManager.getConnection(this.dbConnectString, var2, var3);
- DatabaseMetaData var5 = this.conn.getMetaData();
- this.dbType = var5.getDatabaseProductName();
- this.dbVersion = var5.getDatabaseProductVersion();
- this.driverName = var5.getDriverName();
- this.driverVersion = var5.getDriverVersion();
- }
-
- public Enumeration getChoiceList() throws SQLException {
- Vector var1 = new Vector();
- DatabaseMetaData var2 = this.conn.getMetaData();
- ResultSet var3 = var2.getTables((String)null, (String)null, (String)null, new String[]{"TABLE", "VIEW"});
- byte var4 = 1;
- byte var5 = 2;
- byte var6 = 3;
-
- while(var3.next()) {
- var1.addElement(new TableSpec((ImportODBCMeta)null, var3.getString(var4), var3.getString(var5), var3.getString(var6)));
- }
-
- var3.close();
- Object var7 = null;
- return var1.elements();
- }
-
- public Enumeration getMetaInfo(MetaSpectIntf.TableIntf var1) throws SQLException {
- TableSpec var2 = (TableSpec)var1;
- Vector var3 = new Vector();
- DatabaseMetaData var4 = this.conn.getMetaData();
- ResultSet var5 = var4.getColumns(var2.catalog, var2.schema, var2.table, (String)null);
-
- while(var5.next()) {
- Hashtable var6 = this.getOneColumn(var5);
- var3.addElement(var6);
- }
-
- var5.close();
- ResultSet var47 = null;
- byte var7 = 4;
-
- try {
- var47 = var4.getPrimaryKeys(var2.catalog, var2.schema, var2.table);
-
- while(var47.next()) {
- this.setPrimaryKey(var3, var47.getString(var7));
- }
- } catch (SQLException var45) {
- if (var2.table.equals("EMPLOYEE")) {
- this.setPrimaryKey(var3, "NUM");
- }
- } finally {
- try {
- if (var47 != null) {
- var47.close();
- }
- } catch (SQLException var42) {
- }
-
- }
-
- var47 = null;
- byte var11 = 1;
- byte var12 = 2;
- byte var13 = 3;
- byte var14 = 4;
- boolean var15 = true;
- boolean var16 = true;
- boolean var17 = true;
- byte var18 = 8;
-
- try {
- var47 = var4.getImportedKeys(var2.catalog, var2.schema, var2.table);
-
- while(var47.next()) {
- this.setForeignKey(var3, var47.getString(var11), var47.getString(var12), var47.getString(var13), var47.getString(var14), var47.getString(var18));
- }
- } catch (SQLException var43) {
- if (var2.table.equals("PERF_REVIEW") || var2.table.equals("COMP_CHANGE")) {
- this.setForeignKey(var3, var2.catalog, var2.schema, "EMPLOYEE", "NUM", "EMP_NUM");
- }
- } finally {
- try {
- if (var47 != null) {
- var47.close();
- }
- } catch (SQLException var41) {
- }
-
- }
-
- return var3.elements();
- }
-
- protected Hashtable getOneColumn(ResultSet var1) throws SQLException {
- byte var2 = 4;
- byte var3 = 6;
- byte var4 = 5;
- byte var5 = 7;
- byte var6 = 11;
- byte var7 = 12;
- byte var8 = 13;
- byte var9 = 17;
- 1 var10 = new 1((ImportODBCMeta)null);
- ((Hashtable)var10).put("NAME", var1.getString(var2));
- ((Hashtable)var10).put("DATATYPE", DataTypeFactory.createDataTypeFromSQLTypes(var1.getShort(var4)));
-
- try {
- ((Hashtable)var10).put("NATIVEDATATYPE", var1.getString(var3));
- } catch (SQLException var17) {
- }
-
- try {
- ((Hashtable)var10).put("LEN", new Integer(var1.getInt(var5)));
- } catch (SQLException var16) {
- }
-
- try {
- ((Hashtable)var10).put("ISNULLABLE", new Boolean(var1.getInt(var6) != 0));
- } catch (SQLException var15) {
- }
-
- try {
- ((Hashtable)var10).put("REMARKS", var1.getString(var7));
- } catch (SQLException var14) {
- }
-
- try {
- ((Hashtable)var10).put("DEFAULTVAL", var1.getString(var8));
- } catch (SQLException var13) {
- }
-
- try {
- ((Hashtable)var10).put("ORDINAL", new Integer(var1.getInt(var9)));
- } catch (SQLException var12) {
- }
-
- ((Hashtable)var10).put("IS_ID", Boolean.FALSE);
- return var10;
- }
-
- protected void setForeignKey(Vector var1, String var2, String var3, String var4, String var5, String var6) {
- Enumeration var7 = var1.elements();
-
- while(var7.hasMoreElements()) {
- Hashtable var8 = (Hashtable)var7.nextElement();
- String var9 = (String)var8.get("NAME");
- if (var9.equalsIgnoreCase(var6)) {
- var8.put("REF_TABLE", new TableSpec((ImportODBCMeta)null, var2, var3, var4));
- var8.put("REF_COL", var5);
- break;
- }
- }
-
- }
-
- protected void setPrimaryKey(Vector var1, String var2) {
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- Hashtable var4 = (Hashtable)var3.nextElement();
- String var5 = (String)var4.get("NAME");
- if (var5.equalsIgnoreCase(var2)) {
- var4.put("IS_ID", Boolean.TRUE);
- break;
- }
- }
-
- }
-
- public void close() throws SQLException {
- if (this.conn != null) {
- this.conn.close();
- }
-
- }
-
- public Enumeration getRefineList(MetaSpectIntf.TableIntf var1) throws SQLException {
- return null;
- }
-
- public void finalize() {
- try {
- this.close();
- } catch (SQLException var2) {
- }
-
- }
- }
-